package com.boxuegu.boxuegu.adpter;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import android.widget.Toast;

import com.boxuegu.boxuegu.ExercisesDetailActivity;
import com.boxuegu.boxuegu.bean.ExercisesBean;
import com.boxuegu.boxuegu.R;

import java.util.List;

public class ExercisesAdapter extends BaseAdapter {
    private List<ExercisesBean> beans;//数据源集合
    private Context context;

    public ExercisesAdapter(List<ExercisesBean> beans, Activity context){
        //通过构造方法获取数据源
        this.beans=beans;
        this.context=context;
    }

    @Override
    public int getCount() {
        if (beans==null) return 0;//表示数据源不存在
        return beans.size();
    }

    @Override
    public Object getItem(int position) {
        if (beans==null) return  null;//表示数据源不存在
        return beans.get(position);
    }

    @Override
    public long getItemId(int position) {
        if (beans==null) return -1;//表示数据源不存在
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        //第二个参数convertView;刚滚走的行控件对象


        //当listview要往屏幕展示一行数据时，
        //将数据源集合中position行的数据填充到listview的对应行里面，返回这个一行的view控件
        //1、读取数据源集合中positi元素
        final ExercisesBean bean=beans.get(position);
        ViewHolder viewHolder=new ViewHolder();
        if (convertView==null){//没有滚走的行
            LayoutInflater layoutInflater=LayoutInflater.from(context);
            convertView=layoutInflater.inflate(R.layout.exercises_list_item,null);
            //3、到刚加载的行控件中寻找内部控件
            TextView tv_order,tv_title,tv_content;
            tv_order=convertView.findViewById(R.id.tv_order);
            tv_title=convertView.findViewById(R.id.tv_title);
            tv_content=convertView.findViewById(R.id.tv_content);

            viewHolder.tv_order=tv_order;
            viewHolder.tv_title=tv_title;
            viewHolder.tv_content=tv_content;
           convertView.setTag(viewHolder); //将刚才生成的行控件view和行控件view的内部控件一起保存到缓冲区
        }else {//有滚走的行,滚走行就是第二个参数
            viewHolder=(ViewHolder)convertView.getTag();
        }
        //4、把读取出来的元素里面的内容填充到布局文件对应的控件上面
        viewHolder.tv_order.setText(bean.getId()+"");
        viewHolder.tv_title.setText(bean.getTitle());
        viewHolder.tv_content.setText(bean.getContent());
        viewHolder.tv_order.setBackgroundResource(bean.getBackgroundId());

        convertView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //跳转到本章习题内容
                //1、压制本行对应章题目和序号
                // 2、用意图跳转到习题内容页面
                //3、到习题内容页面中接收这个意图，取出压制的参数，显示标题栏。
                //Toast.makeText(context,"即将跳转到"+bean.getTitle()+"习题内容",Toast.LENGTH_LONG).show();
                Intent intent=new Intent(context, ExercisesDetailActivity.class);
                intent.putExtra("id",bean.getId());
                intent.putExtra("title",bean.getTitle());
                context.startActivity(intent);//这样就跳到了习题内容页面，如果这个页面不存在会生成，执行oncreate方法
            }
        });


        return convertView;
    }
    class ViewHolder{
        public TextView tv_order,tv_title,tv_content;
    }
}